Field of the Invention
The invention relates generally to mobile communication technology, and more particularly to replicating data among many mobile devices.
Description of the Background Art
Applications on mobile devices are natural extensions of desktop and web-based tools. People use mobile devices to communicate, email, and surf the Internet for popular websites such as Flicker, Facebook, Twitter, etc. As mobile devices such as smartphones become more commonplace, so is their use for desktop functions such as data sharing. Multiple applications designed for data sharing may be downloaded or accessed by connecting mobile devices to a communication network.
There are many conventional technologies for distributing and replicating data among mobile devices. For example, data may be replicated via a central server. Typically, a central server is operable to host a particular database application. Multiple mobile devices connect to the central server system via a communication network and allow users to use a web-based interface to post data and view data posted by other users. Having a user connect to the central server has benefits. For example, because all users post data to the central server, data is easily shared. Additionally, any changes or upgrades to applications or application databases need only be deployed on the central server.
However, the system described above has drawbacks, particularly when used from mobile devices over wireless networks. For example, users are likely to incur data communication charges while connecting to the application via a communication network. Also, a high latency wireless network can lead to a negative user experience. As a result, applications that require a reliable and fast network become unusable. Additionally, the lack of data storage on a mobile device means that all data must be stored on the central server, making it difficult for users to manipulate data quickly. Another side effect is decreased battery life on a mobile device. Finally, users cannot share data when their mobile devices are offline and do not have access to the communication network.
Other conventional systems allow users to locally store data on their mobile devices. Conventionally, those systems store data on mobile devices and post data to a central server for sharing with other users. When users make data changes on their mobile devices, the data changes are uploaded or posted to the central server. Users share data posted by other users to the central server either by explicitly requesting data from the central server or by having database applications on their mobile devices request data from the central server at times predetermined by the database application developer.
Storing data locally on a mobile device has benefits. Users are able to manipulate data when mobile devices are offline. Also, users' interaction with the application data is fast and efficient.
However, data stored locally on mobile devices is difficult to replicate in a consistent manner. Additionally, when application developers modify or upgrade database applications, the upgrade must be rolled out seamlessly to all mobile devices. For example, if a rollout is not seamless, mobile devices may reboot in the middle of a cell phone conversation, thereby resulting in a negative user experience. Also, users may experience busy intervals on their mobile devices, such as their mobile devices appearing frozen, because an upgrade is being downloaded from the web server.
Therefore, what is needed are systems and methods that allow mobile users to share data in a fast and efficient way. What is also needed are systems and methods where users do not incur network charges caused by frequent uploads and downloads of data. What is further needed are systems and methods that are able to incorporate multiple database applications into web technologies which are operable to provide a mechanism for instant and transparent deployment and immediate upgrades. What is also needed is a central server system operable to host multiple database applications on one server. Finally, what is needed are systems and methods that provide for a scheduling mechanism where mobile devices are operable to request data updates based on the amount of data posted to the central server by other mobile devices.